package com.ruoyi.qsng.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.SnowFlakeUtil;
import com.ruoyi.qsng.domain.KActivity;
import com.ruoyi.qsng.mapper.KActivityMapper;
import com.ruoyi.qsng.service.IKActivityService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import java.util.List;

/**
 * 活动信息Service业务层处理
 *
 * @author kanglou
 * @date 2023-06-07
 */
@Service
public class KActivityServiceImpl implements IKActivityService {
    @Autowired
    private KActivityMapper kActivityMapper;

    /**
     * 查询活动信息
     *
     * @param id 活动信息主键
     * @return 活动信息
     */
    @Override
    public KActivity selectKActivityById(String id) {
        return kActivityMapper.selectKActivityById(id);
    }

    /**
     * 查询活动信息
     *
     * @param id 活动信息主键
     * @return 活动信息
     */
    @Override
    public KActivity selectKActivityByIdForApp(String id) {
        KActivity kActivity = new KActivity();
        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
        Assert.notNull(userId, "获取用户信息失败！");
        kActivity.setUserId(String.valueOf(userId));
        kActivity.setId(id);
        return kActivityMapper.selectKActivityByIdForApp(kActivity);
    }

    /**
     * 查询活动信息列表
     *
     * @param kActivity 活动信息
     * @return 活动信息
     */
    @Override
    public List<KActivity> selectKActivityList(KActivity kActivity) {
        return kActivityMapper.selectKActivityList(kActivity);
    }

    /**
     * 查询活动信息列表
     *
     * @param kActivity 活动信息
     * @return 活动信息
     */
    @Override
    public List<KActivity> selectKActivityListForApp(KActivity kActivity) {
        Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
        Assert.notNull(userId, "获取用户信息失败！");
        kActivity.setUserId(String.valueOf(userId));
        return kActivityMapper.selectKActivityListForApp(kActivity);
    }

    /**
     * 新增活动信息
     *
     * @param kActivity 活动信息
     * @return 结果
     */
    @Override
    public int insertKActivity(KActivity kActivity) {

        kActivity.setId(SnowFlakeUtil.getNextId());
//        kActivity.setCreateTime(DateUtils.getNowDate());
        return kActivityMapper.insertKActivity(kActivity);
    }

    /**
     * 修改活动信息
     *
     * @param kActivity 活动信息
     * @return 结果
     */
    @Override
    public int updateKActivity(KActivity kActivity) {

        kActivity.setUpdateTime(DateUtils.getNowDate());
        return kActivityMapper.updateKActivity(kActivity);
    }

    /**
     * 批量删除活动信息
     *
     * @param ids 需要删除的活动信息主键
     * @return 结果
     */
    @Override
    public int deleteKActivityByIds(String[] ids) {
        return kActivityMapper.deleteKActivityByIds(ids);
    }

    /**
     * 删除活动信息信息
     *
     * @param id 活动信息主键
     * @return 结果
     */
    @Override
    public int deleteKActivityById(String id) {
        return kActivityMapper.deleteKActivityById(id);
    }
}
